「bindice - OpenSCAD Playground」
OpenSCADのESモジュール化達成化記念に、初めて
3Dプリンターをゲットした日に作った、0か1しか出ない2面ダイス(バイナリーダイス / bindice)をOpenSCADで作ってみました。
円の解像度をfnパラメータでカスタマイズできるので、12と設定すると低ポリゴン化できました。
h = 10;
d = 0.15;
fn = 500;
module halfcylinder(h) {
difference() {
cylinder(h, h / 2, h / 2, $fn=fn);
translate([-h / 2, 0, 0]) {
cube(h);
}
}
}
module bindice(h) {
halfcylinder(h);
translate([h / 2, 0, h / 2]) {
rotate([0, 90, 180]) {
halfcylinder(h);
}
}
}
module ring(r, r2, h) {
difference() {
cylinder(h, r / 2, r / 2, $fn=fn);
translate([0, 0, -h]) {
cylinder(h * 2, r2 / 2, r2 / 2, $fn=fn);
}
}
}
module zero(h) {
translate([0, 0, -d]) {
ratio = 1; // 0.8
scale([ratio, 1, 1]) {
ring(h / 2, h / 2 - h * 0.15, d * 2); // 0
}
}
}
module one(h) {
translate([-h / 16, -h/ 4, -d]) {
cube([h / 8, h / 2, d * 2]); // 1
}
}
module zero_one(h, size) {
translate([0, -h / 8, 0]) {
one(size);
translate([0, 0, h]) {
one(size);
}
}
translate([-h / 2, h / 8, h / 2]) {
rotate([0, 90, 0]) {
zero(size);
translate([0, 0, h]) {
zero(size);
}
}
}
}
difference() {
bindice(h);
zero_one(h, h * 0.5);
}
scad2stlで作ってプレビューで見た結果もこの通り!
「bindice - OpenSCAD Playground」
OpenSCAD Playground上の「Edit」ボタンから編集もできるので、いろいろいじって遊んでみてください!